Fix "xm migrate" hang on failure.
authorkfraser@localhost.localdomain <kfraser@localhost.localdomain>
Tue, 3 Apr 2007 08:03:51 +0000 (09:03 +0100)
committerkfraser@localhost.localdomain <kfraser@localhost.localdomain>
Tue, 3 Apr 2007 08:03:51 +0000 (09:03 +0100)
If a domain fails to restore, report back an error and close the
connection. This still leaves a confusing error from 'xm migrate' in
many cases, but it's much better than just sitting there.

Signed-off-by: John Levon <john.levon@sun.com>
tools/python/xen/xend/server/relocate.py

index 3cdd43a5eb772f4a6edac6cc4d8479e3304ee941..8a28c85c0a51dd5e0a2df858f7d6b0e84c1a1a59 100644 (file)
@@ -106,8 +106,12 @@ class RelocationProtocol(protocol.Protocol):
     def op_receive(self, name, _):
         if self.transport:
             self.send_reply(["ready", name])
-            XendDomain.instance().domain_restore_fd(
-                self.transport.sock.fileno())
+            try:
+                XendDomain.instance().domain_restore_fd(
+                    self.transport.sock.fileno())
+            except:
+                self.send_error()
+                self.close()
         else:
             log.error(name + ": no transport")
             raise XendError(name + ": no transport")